Combining proofs and programs in a dependently typed language
نویسندگان
چکیده
منابع مشابه
Combining Proofs and Programs in a Dependently Typed Language ( With technical appendix )
Most dependently-typed p rogramming languages either require that all expressions terminate (e.g. Coq, Agda, and Epigram), or allow infinite loops but are inconsistent when viewed as logics (e.g. Haskell, ATS, Ωmega). Here, we combine these two approaches into a single dependently-typed core language. The language is composed of two fragments t hat share a common syntax and overlapping semantic...
متن کاملDependently typed functional programs and their proofs
Research in dependent type theories [M-L71a] has, in the past, concentrated on its use in the presentation of theorems and theorem-proving. This thesis is concerned mainly with the exploitation of the computational aspects of type theory for programming, in a context where the properties of programs may readily be specified and established. In particular, it develops technology for programming ...
متن کاملTrellys: Dependently-typed Language Design
My research focuses on the design of statically-typed programming languages. Static type systems are a popular, cost-effective form of lightweight program verification. They provide a tractable and modular way for programmers to express properties that can be mechanically checked by the compiler. As a result, the compiler can rule out a wide variety of errors and provide more information to ref...
متن کاملA general-purpose dependently-typed assembly language
In this paper we present Singleton, a dependently typed assembly language. Based upon the calculus of inductive constructions, Singleton’s type system allows procedures abstracting over terms, types, propositions, and proof terms. Furthermore, Singleton includes generalised singleton types. In addition to the primitive singleton types of other languages, these generalised singleton types allow ...
متن کاملDependently typed array programs don't go wrong
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of computation. Array operations process entire arrays instead of just single elements. This makes array programs highly expressive and introduces data parallelism in a natural way. Array programming imposes non-trivial structural constraints on ranks, shapes, and element values of arrays. A promine...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
ژورنال
عنوان ژورنال: ACM SIGPLAN Notices
سال: 2014
ISSN: 0362-1340,1558-1160
DOI: 10.1145/2578855.2535883